package com.gitee.wsl.model.process

import com.gitee.wsl.model.plugin.ModelPluginInstance
import com.gitee.wsl.prop.AttributeKey

open class ProcessModelPluginInstance<PluginConfig>(
    key: AttributeKey<ModelPluginInstance<ProcessModel, PluginConfig,ProcessModelPluginBuilder<PluginConfig>>>,
    config: PluginConfig,
    override val body: ProcessModelPluginBuilder<PluginConfig>.() -> Unit
): ModelPluginInstance<ProcessModel, PluginConfig,ProcessModelPluginBuilder<PluginConfig>>(key, config, body) {

    override fun createBuilder(
        key: AttributeKey<ModelPluginInstance<ProcessModel, PluginConfig, ProcessModelPluginBuilder<PluginConfig>>>,
        scope: ProcessModel,
        pluginConfig: PluginConfig,
    ) = ProcessModelPluginBuilder(key,scope,pluginConfig)

}